
package com.eltsistemas.modelo;

import java.io.Serializable;
import java.util.Calendar;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;

@SuppressWarnings("serial")
@Entity
@org.hibernate.annotations.Entity(dynamicUpdate = true) 
public class AlteracaoSalarial implements Serializable{
	
	@Id @GeneratedValue
	private Long id;
	 
	@ManyToOne(fetch=FetchType.LAZY, cascade={CascadeType.PERSIST, CascadeType.REMOVE})
	@JoinColumn(name="id_funcionario")
	private Funcionario funcionario;
		
	@OneToOne(fetch=FetchType.LAZY)
	private Setor setor;
	
	@OneToOne(fetch=FetchType.LAZY)
	private Funcao funcao;

	@Column(nullable=false)
	private Double salarioAnterior;
	
	@Column(nullable=false)
	private Double salarioAtual;
	 
	@Column(nullable=false)
	private Calendar dataAlteracao;
	
	@Column(nullable=false)
	private String motivo;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Funcionario getFuncionario() {
		return funcionario;
	}

	public void setFuncionario(Funcionario funcionario) {
		this.funcionario = funcionario;
	}

	public Setor getSetor() {
		return setor;
	}

	public void setSetor(Setor setor) {
		this.setor = setor;
	}

	public Funcao getFuncao() {
		return funcao;
	}

	public void setFuncao(Funcao funcao) {
		this.funcao = funcao;
	}

	public Double getSalarioAnterior() {
		return salarioAnterior;
	}

	public void setSalarioAnterior(Double salarioAnterior) {
		this.salarioAnterior = salarioAnterior;
	}

	public Double getSalarioAtual() {
		return salarioAtual;
	}

	public void setSalarioAtual(Double salarioAtual) {
		this.salarioAtual = salarioAtual;
	}

	public Calendar getDataAlteracao() {
		return dataAlteracao;
	}

	public void setDataAlteracao(Calendar dataAlteracao) {
		this.dataAlteracao = dataAlteracao;
	}

	public String getMotivo() {
		return motivo;
	}

	public void setMotivo(String motivo) {
		this.motivo = motivo;
	}
}
